package main

import "fmt"

/*
channel是goroutine之间的一种通信方式
类似于uinix中的双向管道

定义一个channel时，也需要定义发送到channel的值的类型
注意，必须使用make 创建channel
*/
func main() {
	//定义一个channel时，也需要定义发送到channel的值的类型
	//注意，必须使用make 创建channel
	ci := make(chan int)
	cs := make(chan string)
	cf := make(chan interface{})
	fmt.Println(ci, cs, cf)
	//通过操作符 <- 来接收或发送数据
	var ch chan int = make(chan int)
	ch <- 1   //发送1到ch通道
	v := <-ch //从ch通过接收数据，并赋值给v
	fmt.Println(v)
}
